Release 10.1A: OpenEdge Development:
Messaging and ESB


Summary

The following code sample summarizes the steps for sending a message:

Complete code for sending a message using a PTP session 
/* Sending a message to myqueue */ 
DEFINE VARIABLE ptpsession AS HANDLE. 
DEFINE VARIABLE messageH AS HANDLE. 
/* Creates PTP session*/ 
RUN  jms/ptpsession.p PERSISTENT SET ptpsession ("-H localhost -S 5162” ). 
/*Connects to the broker */ 
RUN setBrokerURL IN ptpsession (“tcp//machinename:2506"). 
RUN beginSession IN ptpsession. 
/* Create a message */ 
RUN create...Message IN ptpsession (OUTPUT messageH).  
RUN set... IN messageH ("Message"). 
/*Send the message to “myqueue” */ 
RUN sendToQueue IN ptpsession ("myQueue", messageH, ?, ?, ?) 
/* Delete message and session */ 
RUN deleteMessage IN messageH. 
RUN deleteSession IN ptpsession. 

The following code sample summarizes the steps for receiving a message:

Complete code for receiving a message using a PTP session 
/* Receives a message from myqueue. */ 
DEFINE VARIABLE ptpsession AS HANDLE. 
DEFINE VARIABLE consumerH AS HANDLE. 
/* Creates PTP session*/ 
RUN  jms/ptpsession.p PERSISTENT SET ptpsession ("-H localhost -S 5162” ). 
/*Connects to the broker */ 
RUN setBrokerURL IN ptpsession (“tcp//machinename:2506"). 
RUN beginSession IN ptpsession. 
/* Messages received from myqueue are handled by the “myintproc” procedure. */ 
RUN createMessageConsumer IN ptpsession  
     (THIS-PROCEDURE, "myintproc", OUTPUT consumerH). 
RUN receiveFromQueue IN ptpsession (“myQueue", ?, consumerH).  
RUN startReceiveMessages IN ptpsession. 
/* Wait to receive the messages. */ 
WAIT-FOR u1 OF THIS-PROCEDURE. 
/* Delete session */ 
RUN deleteSession IN ptpsession. 
PROCEDURE myintproc: 
DEFINE INPUT PARAMETER messageH AS HANDLE. 
DEFINE INPUT PARAMETER consumerH AS HANDLE. 
DEFINE OUTPUT PARAMETER replyH AS HANDLE. 
/* Business logic here */ 
... 
    /* Delete message. */ 
    RUN deleteMessage IN messageH. 
    APPLY "U1" TO THIS-PROCEDURE.  
END. 


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095